package zdori;

public class J20_Pakage {

	/**
	 * @param args
	 */
	
	//패키지package
	//자바에서는 패키지를 이용해 관련 클래스나 유사한 기능을 가진 클래스들로 그룹화할수있음
	//자바핵심 클래스는 java.lang 패키지에있음
	//자바프로그램 작성에 도움을 주는 유틸리티 클래스들은 java.util 패키지에 있음
	
	//java로 시작하는 패키지는 핵심라이브러리를 위해 예약됨
	//javax로 시작하는 패키지는 java라는 핵심 라이브러리를 확장한 라이브러리라는 의미임
	//따라서, 일반 개발자는 java나javax로 시작하는 패키지는 만들수없음
	
	//또한 클래스를 조직화하고 패키징함으로써
	//'이름충돌'을 피할수있음
	//즉, 클래스 이름이 동일하더라도 
	//패키지만 다르면 얼마든지 허용됨
	
	//단. 이러한 목적을 위해 패키지표기법은 역방향 도메인 이름에 기초함
	//예를들어, java 공식홈페이지 주소는 
	//java.sun.com 임
	//이것을 패키지이름으로 작성하려면
	//com.sun.java 로작성한다.
	//일반적으로 패키지는 조직성격.회사명.기타등등순으로 
	//작성하는것이 관례다.
	//org.iedu.javaled17.아이디.프로젝트명.클래스명
	
	//클래스는 물리적 객체가 아님 -만드는데 돈 안듦
	//따라서 하나만만들필요없음
	//패키지를 통해 클래스를 그룹화하려면
	//package라는 예약어를 사용해야함
	//클래스의 패키지화는 클래스의 가시성에 영향을줌
	
	//패키지는 물리적인 객체가 아니지만
	//패키지이름은 소스파일의 물리적인 위치와 관련있음
	//따라서 a.b.c라는 패키지를 가진 D클래스는 
	//a/b/c 디텍토리 아래에 D라는 소스파일이 존재한다는것을 의미
	
	//한편, 패키지선언이 없는 클래스는
	//'기본default 패키지'에 속해있다고 말함
	//기본 패키지에 속한 클래스들은
	//기본 패키지 밖에서는 볼수없음

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}
